/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package logicaNegocio.estrategia;

import persistencia.agente.Promocion;

/**
 *
 * @author Sebastian
 */
public class FabricaEstrategiaDescuento {

    private static FabricaEstrategiaDescuento instancia;

    private FabricaEstrategiaDescuento() {
    }

    public static synchronized FabricaEstrategiaDescuento getInstancia() {
        if (instancia == null) {
            instancia = new FabricaEstrategiaDescuento();
        }
        return instancia;
    }

    public EstrategiaDescuento obtenerEstrategiaDescuento(Promocion promocionProducto) {
        EstrategiaDescuento estrategia = null;
        
        if (promocionProducto != null) {
            if (promocionProducto.getCantProductos() > 1 && promocionProducto.getDia() == null) {
                estrategia = new EstrategiaDescuentoPorCantidad();
            } else if (promocionProducto.getCantProductos() == 1 && promocionProducto.getDia() != null) {
                estrategia = new EstrategiaDescuentoPorDia();
            } else {
                System.out.println("--> aplico estrategia compuesta");
                estrategia = new EstrategiaDescuentoCompuesta(); 
                
            }
        }
        return estrategia;
    }
}
